﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Web.Services.Protocols;
using System.Windows.Forms;
using ProjetoJVA.localhostMatricula;

namespace ProjetoJVA.Gui
{
    public partial class PesquisarAlunoTela : Form
    {
        Service1 servicoMatricula = new Service1();
        public PesquisarAlunoTela()
        {
            InitializeComponent();
        }

        private void botaoAdicionarProf_Click(object sender, EventArgs e)
        {
            PesquisarAluno();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Pesquisar();
        }

        public void PesquisarAluno()
        {
            List<Aluno> lista;
            try
            {
                string nome = campoNome.Text;
                int matricula;
                try
                {
                    matricula = Convert.ToInt32(campoMatricula.Text);
                    lista = servicoMatricula.PesquisarAluno(nome, matricula.ToString()).ToList<Aluno>();
                    listAluno.Items.Clear();

                    for (int i = 0; i < lista.Count; i++)
                    {
                        ListViewItem linha = listAluno.Items.Add(lista[i].Matricula.ToString());
                        linha.SubItems.Add(lista[i].Nome);
                        linha.SubItems.Add(lista[i].Endereco);
                        linha.SubItems.Add(lista[i].Telefone);
                        linha.SubItems.Add(lista[i].Email);
                        linha.SubItems.Add(lista[i].Sexo.ToString());
                    }
                }
                catch (FormatException)
                {
                    matricula = 20;
                    lista = servicoMatricula.PesquisarAluno(nome, matricula.ToString()).ToList<Aluno>();
                    listAluno.Items.Clear();
                    for (int i = 0; i < lista.Count; i++)
                    {
                        ListViewItem linha = listAluno.Items.Add(lista[i].Matricula.ToString());
                        linha.SubItems.Add(lista[i].Nome);
                        linha.SubItems.Add(lista[i].Endereco);
                        linha.SubItems.Add(lista[i].Telefone);
                        linha.SubItems.Add(lista[i].Email);
                        linha.SubItems.Add(lista[i].Sexo.ToString());
                    }
                }

            }
            catch (SoapException ex)
            {
                var menssagem = ex.Message;
                menssagem = menssagem.Remove(0, menssagem.LastIndexOf("--->"));
                menssagem = menssagem.Remove(0, menssagem.IndexOf(":") + 1);

                if (menssagem.IndexOf('\n') >= 0)
                {
                    menssagem = menssagem.Remove(menssagem.IndexOf('\n'));
                }

                MessageBox.Show(menssagem, "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

        }

        public void Pesquisar()
        {
            try
            {
                List<Responsavel> lista;
                int matricula = Convert.ToInt32(listAluno.SelectedItems[0].SubItems[0].Text);
                lista = servicoMatricula.PesquisarResponsavel(matricula).ToList();
                listResponsavel.Items.Clear();

                List<Matricula> lista2;
                lista2 = servicoMatricula.PesquisarMatricula(matricula).ToList();
                listTST.Items.Clear();

                    for (int i = 0; i < lista.Count; i++)
                    {
                        ListViewItem linha = listResponsavel.Items.Add(lista[i].Nome);
                        linha.SubItems.Add(lista[i].Endereco);
                        linha.SubItems.Add(lista[i].Telefone);
                        linha.SubItems.Add(lista[i].Email);
                        linha.SubItems.Add(lista[i].Sexo);
                        linha.SubItems.Add(lista[i].Filiacao);
                        linha.SubItems.Add(lista[i].Categoria);
                    }

                    for (int i = 0; i < lista2.Count; i++)
                    {
                        ListViewItem linha = listTST.Items.Add(lista2[i].Serie);
                        linha.SubItems.Add(lista2[i].Turma);
                        linha.SubItems.Add(lista2[i].Turno);
                    }


            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Nenhum Aluno selecionado!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}
